固定大小

将视图固定在其理想大小,防止其被压缩或扩展超出其内容本身所需的尺寸。

类型

1fixedSize?: boolean | {
2  horizontal: boolean
3  vertical: boolean
4}

概述

fixedSize 修饰符会告诉布局系统使用视图的“理想尺寸”进行布局,而不是根据父视图的限制拉伸或压缩视图。这在你希望文本不被截断、内容完整显示时非常有用,或者在你希望视图不随父容器大小变化而自动调整尺寸时使用。

该行为与 SwiftUI 中的 fixedSize() 一致。

使用方式

你可以通过两种方式设置 fixedSize

1. 布尔值形式

1<Text fixedSize>
2  这段文字不会被压缩或截断。
3</Text>

等价于:

1<Text fixedSize={{ horizontal: true, vertical: true }}>
2  这段文字不会被压缩或截断。
3</Text>

2. 对象形式

通过对象形式可以分别控制水平和垂直方向是否固定:

1<Text fixedSize={{ horizontal: true, vertical: false }}>
2  水平方向不压缩,垂直方向仍可适应内容。
3</Text>

行为说明

  • horizontal: true:视图水平方向保持其理想宽度,不会被压缩或拉伸,常用于防止文字被截断。
  • vertical: true:视图垂直方向保持理想高度,不会被压缩或拉伸。
  • 两个方向都为 false 时,该修饰符不生效。
  • 父容器在布局时如果给定了较小的空间,设置了 fixedSize 的视图将优先保持其理想尺寸,可能导致内容溢出。

示例

1<VStack>
2  <Text fixedSize>
3    一段较长的文字,不应被截断,应完整显示。
4  </Text>
5  <Text fixedSize={{ horizontal: true, vertical: false }}>
6    这段文字保持水平方向的尺寸,但可以在垂直方向自动换行或扩展。
7  </Text>
8</VStack>

注意事项

  • 常用于防止 Text 视图在父容器中被截断。
  • HStackVStack 等布局组件结合时,可以更精确地控制某个子视图不随整体布局缩放。
  • 使用该修饰符时,应考虑可能出现的内容溢出或布局冲突问题。